今さら聞けないSPAのCORS対策の話 by sota1235
https://gyazo.com/8d6992e282554b599f0837af551b31eb
これを詳しく聞きに来た
https://gyazo.com/43083b3c41e7d60484e0bf3f7faf9834
ほんと今知りたい話でよかった
Originとは
Scheme
Host
Port
Same Origin Policy
異なるOrigin間での通信をしない
XHR, fetch, Canvas image loadなどの前にチェックされる
Cross Origin Resource Shareing
CORS
Same Origin Policyを部分的に解除するという事
http headerに付ける
Access-Control-Allow-Originとか
なんとなくAccess-Contorl-Allow-Origin: *付けるな
Access-Control-Allow-Methods
Access-Control-Expose-Headers
などもある
CORSでAjaxする時にcookieを送る
client jsはwithCredentials()を付けてajax
serverはAccess-Control-Allow-Credentials headerを付けて返す
CORS informationを返すOPTIONS Requestの事
これを1往復させてから、本来のXHRが送信される
送られる条件
GET/POST以外のメソッド
カスタムヘッダ
ContentTypeをapplication/jsonとかにする
など
2往復するので遅い
cacheできる
例えばAccess-Control-Max-Age: 100で100秒残る
ブラウザ毎に上限がある
Chrome 10分
Firefox 24時間
アプリ毎に考えろ
requestのheader.originをサーバー側でチェックする
この値は、モダンブラウザなら書き換えできないので安心